package com.sss.portalrimac.web.saludoinicial.controller;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.sss.portalrimac.application.ClienteService;
import com.sss.portalrimac.domain.Cliente;
import com.sss.portalrimac.infraestructure.configuration.ConfigurationManager;
import com.sss.portalrimac.infraestructure.exception.ConstantError;
import com.sss.portalrimac.infraestructure.exception.ErrorRimac;
import com.sss.portalrimac.infraestructure.exception.ErrorRimacFactory;

@RequestMapping("VIEW")
public class SaludoInicialController {

	public final Log logger = LogFactory.getLog(this.getClass());
	
	@Autowired
	private ErrorRimacFactory errorRimacFactory;
	
	public static final String VIEW_SALUDO_INICIAL = "saludoInicial/saludo";
	private ClienteService clienteService;
	private ConfigurationManager configurationManager;

	public SaludoInicialController(ConfigurationManager configurationManager, ClienteService clienteService) {
		this.clienteService=clienteService;
		this.configurationManager=configurationManager;
	}

	@RequestMapping
	public String saludo(RenderRequest portletRequest,RenderResponse portletResponse, Model model) throws Exception {
		try{
			Cliente cliente=clienteService.obtenerClienteConDatosActualizados(portletRequest, portletResponse);
			if(cliente!=null){
				String mensajeParte1=configurationManager.getValue(ConfigurationManager.SALUDOINICIAL_MENSAJE_PARTE1);
				String mensajeParte2=configurationManager.getValue(ConfigurationManager.SALUDOINICIAL_MENSAJE_PARTE2);
				String mensajeParte3=configurationManager.getValue(ConfigurationManager.SALUDOINICIAL_MENSAJE_PARTE3);
				
				String mensaje=String.format(mensajeParte1, cliente.getPrimerNombre())+ " ";
				if(cliente!=null && cliente.getSegmento()!=null && cliente.getSegmento().getMostrar()){
					mensaje=mensaje+String.format(mensajeParte2, cliente.getSegmento().getNombre().toUpperCase())+ " ";
					logger.info("[MSG]"+mensaje);
				}
				mensaje=mensaje+mensajeParte3;
				
				model.addAttribute("mensaje",mensaje);
				
				/** INI PWEB 004XX - MFARFAN - 02/08/2012 **/
				//model.addAttribute("url",cliente.getSegmentoURL(configurationManager));
				/** FIN PWEB 004XX **/
			}
		}catch (Exception e) {
			ErrorRimac errorRimac = errorRimacFactory.createErrorRimac(e);
			logger.error(ConstantError.MSJ_LOG_CODIGO + errorRimac.getCodigo(),e);
			model.addAttribute("mensaje","");
		}
		return VIEW_SALUDO_INICIAL;
	}

}
